package br.com.tcf.ManegedBeans;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;

import br.com.tcf.arqConfiguracoes.buildLog;
import br.com.tcf.dao.Tp_alimentoDao;
import br.com.tcf.entidades.TpAlimento;

@ManagedBean(name="alimentosMB")
public class AlimentosMB {
	private TpAlimento tp_alimento = new TpAlimento();
	private Tp_alimentoDao tpdao = new Tp_alimentoDao();
	private TpAlimento alimento_selecionado = new TpAlimento();	
	private List<TpAlimento> alimentos = new ArrayList<TpAlimento>();
	
	@PostConstruct
	public void ini(){
		carregaTpAlimentoAtivo();
	}
	
	public void adicionar(){
		try{
		tpdao.gravar(tp_alimento);
		tp_alimento = new TpAlimento();
		carregaTpAlimentoAtivo();
		buildLog.enviaMessagemParaTela(FacesMessage.SEVERITY_INFO, "Sucesso! ", "Tipo de Alimento salvo com sucesso!");
		}catch(Exception e){
			buildLog.enviaMessagemParaTela(FacesMessage.SEVERITY_ERROR, "Erro! ", "Erro ao adicionar o tipo de alimento, procure o administrador do sistema!");
		}
	}
	public void excluir(){
		try{
		tpdao.excluir(tp_alimento);
		tp_alimento = new TpAlimento();
		carregaTpAlimentoAtivo();
		buildLog.enviaMessagemParaTela(FacesMessage.SEVERITY_INFO, "Sucesso! ", "Tipo de Alimento excluido com sucesso!");
		}catch(Exception e){
			buildLog.enviaMessagemParaTela(FacesMessage.SEVERITY_ERROR, "Erro! ", "Erro ao excluir o tipo de alimento, procure o administrador do sistema!");
		}
	}
	public void carregaTpAlimentoAtivo(){
		try{
			alimentos = tpdao.listaTpAlimento();
		}catch(Exception e){
			buildLog.enviaMessagemParaTela(FacesMessage.SEVERITY_ERROR, "Erro! ", "Erro ao buscar o tipo de alimento, procure o administrador do sistema!");
		}
	}
	
	//GETTERS AND SETTERS
	public TpAlimento getAlimento_selecionado() {
		return alimento_selecionado;
	}
	public void setAlimento_selecionado(TpAlimento alimento_selecionado) {
		this.alimento_selecionado = alimento_selecionado;
	}
	public TpAlimento getTp_alimento() {
		return tp_alimento;
	}
	public void setTp_alimento(TpAlimento tp_alimento) {
		this.tp_alimento = tp_alimento;
	}
	public List<TpAlimento> getAlimentos() {
		return alimentos;
	}
	public void setAlimentos(List<TpAlimento> alimentos) {
		this.alimentos = alimentos;
	}
}
